package controllers.configurateur;

import play.data.validation.*;
import play.mvc.Controller;

import java.util.*;


import models.Produit;

public class ProduitImpl extends Controller implements Produits
{
	
	VueStock vs = new VueStock();
	
    public static void index() {
        List produits = models.Produit.findAll();
    	render(produits);
    }
    
    public static void show(Long produitId) {
        Produit produit = Produit.findById(produitId);
        notFoundIfNull(produit);
        render(produit);
    }
    
    public static void create(int _stock, String _nom, double _prix_base) {
    	if (validation.hasErrors()) {
    		params.flash(); // add http parameters to the flash scope
            validation.keep(); // keep the errors for the next request
            flash.error("Svp entrez les paramètres demandé!");
            index();
        }else{
	        //FicheFournisseur fiche_fournisseur = new FicheFournisseur();
	        Produit produit = new Produit(_stock,_nom,_prix_base);
	        produit.save();
	        index();
        }
    }
    
    public static void delete(Long _produitId) {
    	Produit produit = Produit.findById(_produitId);
        notFoundIfNull(produit);
        produit.delete();
        flash.success("Le produit a été supprimé");
        index();
    }
    
    /**
     * 
     * @param _produitId
     */
    public static void est_ajoute_panier(Long _produitId)
    {
    	Produit produit = Produit.findById(_produitId);
    	if(produit.stock == 0)
    	{
    		VueStock vs = new VueStock();
    		vs.update(); 
    	}
    }

    /**
     * On ne gère qu'un observateur, pour le moment
     */
	public void attache(Observateur _o) 
	{
		Observateur o = _o;
	}

	public void detache(Observateur o) 
	{
		o = null;	
	}

	public void notifier() 
	{
		vs.update();
	}
}